// 测试自动登录功能
const auth = require('./utils/auth.js')
const request = require('./libs/request.js')
const apiConfig = require('./config/api.js')

// 测试配置
console.log('=== 自动登录功能测试 ===')
console.log('API配置:', apiConfig)

// 测试登录状态检查
async function testCheckLoginStatus() {
  console.log('\n1. 测试登录状态检查...')
  try {
    const result = await auth.checkLoginStatus()
    console.log('登录状态检查结果:', result)
    return result
  } catch (error) {
    console.error('登录状态检查失败:', error)
    return null
  }
}

// 测试登录功能
async function testLogin() {
  console.log('\n2. 测试登录功能...')
  try {
    const result = await auth.login()
    console.log('登录结果:', result)
    return result
  } catch (error) {
    console.error('登录失败:', error)
    return null
  }
}

// 测试网络请求
async function testRequest() {
  console.log('\n3. 测试网络请求...')
  try {
    const result = await request.get('/v1/user/profile')
    console.log('用户信息请求结果:', result)
    return result
  } catch (error) {
    console.error('网络请求失败:', error)
    return null
  }
}

// 运行测试
async function runTests() {
  console.log('开始运行测试...')
  
  // 测试1: 检查登录状态
  const loginStatus = await testCheckLoginStatus()
  
  // 测试2: 如果未登录，尝试登录
  if (!loginStatus || !loginStatus.isLoggedIn) {
    const loginResult = await testLogin()
    if (loginResult && loginResult.success) {
      // 测试3: 登录成功后测试网络请求
      await testRequest()
    }
  } else {
    // 已登录，直接测试网络请求
    await testRequest()
  }
  
  console.log('\n=== 测试完成 ===')
}

// 导出测试函数
module.exports = {
  testCheckLoginStatus,
  testLogin,
  testRequest,
  runTests
}

// 如果在Node.js环境中运行，直接执行测试
if (typeof module !== 'undefined' && module.exports) {
  // 模拟微信小程序环境
  global.wx = {
    login: (options) => {
      console.log('模拟微信登录...')
      setTimeout(() => {
        options.success({ code: 'test_code_123' })
      }, 100)
    },
    request: (options) => {
      console.log('模拟网络请求:', options.url)
      setTimeout(() => {
        options.success({
          statusCode: 200,
          data: {
            code: 1,
            data: {
              token: 'test_token_123',
              user: {
                id: 1,
                nickname: '测试用户',
                open_id: 'test_openid_123'
              }
            }
          }
        })
      }, 200)
    },
    setStorageSync: (key, value) => {
      console.log('设置存储:', key, value)
    },
    getStorageSync: (key) => {
      console.log('获取存储:', key)
      return null
    },
    removeStorageSync: (key) => {
      console.log('删除存储:', key)
    }
  }
  
  // 运行测试
  runTests()
} 